home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung / Power-Programmierung (Tewi)(1994).iso / magazine / c_news / 12 / cnews012.nws next >
Text File  |  1988-10-30  |  39KB  |  1,122 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.      CNews (1.12)                  Oct 30,1988                 CNews (1.12)
  68.  
  69.  
  70.         *-------------------------------------------------------------*
  71.         |  C  NEWS - International C Newsletter, Compiler review, and |
  72.         |  tutorial.                                                  |
  73.         *-------------------------------------------------------------*
  74.           
  75.           
  76.         Table of Contents
  77.           
  78.         The Heap: Messages from the Editor  ..........................2
  79.         by Barry Lynch
  80.           
  81.         A Beginner's View of C  ......................................4
  82.         by Jerry Zeisler
  83.           
  84.         Public  Domain Software Review/Interview  ...................10
  85.         by Barry Lynch and Mike Smedley(CXL)
  86.           
  87.         Article Submission Standards ................................12
  88.           
  89.         Address's ...................................................13
  90.           
  91.         Distribution Points .........................................14
  92.           
  93.         User Response Form ..........................................15
  94.           
  95.           
  96.              C News is an electronic journal published by the C BBS  in
  97.         Burke, VA  on a monthly basis.  The subject for C News is the C
  98.         programming language, as well  as  any  derivatives  like  C++.
  99.         All  readers  are  encouraged  to  submit articles, reviews, or
  100.         comments for submission.  C News  is  freely  distributed,  but
  101.         can  not be sold for a profit, or cannot have a charge assessed
  102.         to cover distribution costs.  To do so is in  direct  violation
  103.         of the  License  agreement.  Copies of which are available from
  104.         the C  BBS.    This  publication  is  Copyrighted   under   U.S
  105.         Copyright Law.
  106.           
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.                                       -1-
  131.  
  132.  
  133.      CNews (1.12)                  Oct 30,1988                 CNews (1.12)
  134.  
  135.  
  136.           
  137.           THE HEAP: Messages from the Editor 
  138.           
  139.                FEEDBACK: Part II In Issue 11, I went out on a limb and 
  140.           risked  offending  some C News readers, by complaining about
  141.           the lack of feedback. Well, in the weeks  that  have  passed
  142.           since, letters and postcards have come in with comments on C 
  143.           News  and the articles included within. Two of those letters
  144.           could not have come at a better time. 
  145.           
  146.                Every month here in Virginia, we have a "C BBS "  Users
  147.           meeting  on  the third thursday of the month. This month the
  148.           meeting was held  at  Arnie  Cherdak's  house  in  Maryland.
  149.           Before,  the meeting I went to my mail box and picked up two
  150.           letters, one from Phil Loaiza, and the  other  from  Deborah
  151.           Norling. 
  152.           
  153.                Both  writers  took  the  time  to  fill  out the "User
  154.           Response Form" that is included with each issue of  C  News.
  155.           First,  Phil's Letter: what caught my eye, was the following
  156.           line from Phil's letter. "Please pass  along  my  thanks  to
  157.           Arnie  Cherdak  on his Database Design article... ask him if
  158.           he could flesh out B trees a bit more in a future article.." 
  159.           I showed Phil's letter to Arnie, and quite  frankly  he  was
  160.           thrilled.  There  is not a whole lot more that is satisfying
  161.           then receiving praise from  one's  peers.  Arnie  now  feels
  162.           refreshed and may consider working on that article that Phil 
  163.           asked for. 
  164.           
  165.                Deborah  also  took  the  time to fill out the response
  166.           form and had this  to  say:  "...Issue  11's  memory  models
  167.           article   was   the   best  explanation  of  how  C  handles
  168.           segmentation  that  I  have  ever  read.."  Bill  Mayne  who
  169.           authored  that  article, and was at the user meeting as well
  170.           appreciated the kind  words  from  Deborah  as  well.  As  I
  171.           mentioned  previously,  both  letters  could  not  have been
  172.           better timed. 
  173.           
  174.           
  175.           THIS ISSUE'S LEAD ARTICLE 
  176.           
  177.                This issue features an interesting article  from  Jerry
  178.           Zeisler,  a  frequent  local user of the C BBS. A few months
  179.           ago, Jerry and I were talking about a program  that  he  had
  180.           developed for an application at his company. As Jerry, and I 
  181.           were  talking  over lunch, I suggested that maybe he write a
  182.           small  article  on  the  creation   of   "Vcomm".   <Jerry's
  183.           Application>. 
  184.           
  185.                Well  right  after Issue 11 was released a draft of his
  186.           thoughts to me, and we worked out the article that you  will
  187.           read  in  this  issue.  This is an interesting look at how a
  188.           beginner started in C programming. It doesn't get into  what
  189.           books  he  read, or what editor he used. But it does outline
  190.           some problems he ran into, how he used a local BBS  to  help
  191.           solve   them,  and  what  the  final  outcome  was.  Jerry's
  192.           application  resulted  in  his   creating   an   outstanding
  193.           application for his company, an article for C News on Memory 
  194.  
  195.  
  196.                                       -2-
  197.  
  198.  
  199.      CNews (1.12)                  Oct 30,1988                 CNews (1.12)
  200.  
  201.  
  202.           Models  (Issue  10), and the article in this issue. If after
  203.           reading his  article,  you  think  that  you  might  have  a
  204.           similiar story to tell, drop me a line.. 
  205.           
  206.           
  207.           POSTCARDS WANTED! 
  208.           
  209.                I  have an idea, I would like to know all of the places
  210.           on the globe that C News has made an appearance. So, if  you
  211.           have  time,  send me a postcard from wherever you are, and I
  212.           will keep a running tally of the states and  countries  that
  213.           read  C  News.  It  will  be  interesting  to  see just what
  214.           corner's of the globe C News has made it to. I will  do  you
  215.           the  favor  of  sending  you  a  postcard from the "Nation's
  216.           Capitol - Washington, D.C". This sort of reminds me  of  the
  217.           Ham radio operators sending their call letters to each other 
  218.           on post cards. 
  219.           
  220.           
  221.           SHAREWARE/PUBLIC DOMAIN SOFTWARE AUTHORS 
  222.           
  223.                In  this  issue  I  review  briefly,  the CXL windowing
  224.           library package by Mike Smedley. If you are an author  of  a
  225.           package,  and  you  would like to see it reviewed in C News,
  226.           please contact me at one of the address's listed in the back 
  227.           of this issue. This forum will provide you  with  some  free
  228.           advertising,  and it gives me the opportunity to review some
  229.           of the packages that are available currently. If time  is  a
  230.           problem  for  me  then  I  will  ask  user's  to  review the
  231.           packages. Let's here from you... 
  232.           
  233.                In closing, thanks for the support and let's help  move
  234.           C News into it's 2nd year of existance! 
  235.           
  236.           Barry - Editor C News 
  237.           
  238.           
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.                                       -3-
  263.  
  264.  
  265.      CNews (1.12)                  Oct 30,1988                 CNews (1.12)
  266.  
  267.  
  268.           
  269.           
  270.           A BEGINNERS VIEW OF "C" by Jerry Zeisler 
  271.           
  272.           ABSTRACT:   Jerry's   own  account  of  his  experiences  in
  273.           developing a specialized application for his company's  high
  274.           speed  international  modems.  Jerry  reflects on choosing a
  275.           compiler, tools to use, and some of the problems that he ran 
  276.           into as a beginner. 
  277.           
  278.           
  279.           
  280.           
  281.           INTRODUCTION 
  282.           
  283.                As is the  way  that  most  projects  get  started,  my
  284.           company   had   a  need.  I  work  for  a  large  firm  that
  285.           manufactures data communication products, most notably  high
  286.           speed premium modems. Not the mail order type, but the CCITT 
  287.           international community type. 
  288.           
  289.                When the product was first introduced into this country 
  290.           a  while  back,  it  was  most  notably lacking an easy user
  291.           interface for dialing and configuration. The modem uses soft 
  292.           straps for configuration which can be accessed via an  async
  293.           terminal.  The dialing procedure is via V.25 bis (similar in
  294.           concept to Hays AT) or manual dialing only. This  of  course
  295.           has  made the product somewhat difficult to market in the US
  296.           where the AT command set has become  the  Defacto  standard.
  297.           But,  it  seems  that  since  divestiture  there has been no
  298.           single US company or organization with enough power to  take
  299.           the  lead  in  forming  strong  US  standards,  so the CCITT
  300.           standards are becoming more  fashionable  here  in  the  US,
  301.           therefore  our  entry  into the US market. So, how does this
  302.           rags to rags story relate to 'C'? 
  303.           
  304.           
  305.           THE IDEA 
  306.           
  307.                I decided about 8 months ago  to  design  and  build  a
  308.           program  that  will  make  the  V.25  bis  protocol  totally
  309.           transparent to the user, hopefully easing our way  into  the
  310.           asynchronous marketplace. 
  311.           
  312.                Being  the  enterprising fellow that I am, I decided to
  313.           take the giant step into 'C' in order to program the monster 
  314.           that I had in mind and to finally learn a  language  that  I
  315.           seen  for  a  long  time  but  never touched. I knew that it
  316.           wasn't going to be an easy task since I am not a  programmer
  317.           by  trade,  nor  do  I do it as a hobby, only as required. I
  318.           have done some programming  previously.  Starting  about  14
  319.           years  ago in the Army I maintained a computer system called
  320.           AUTODIN manufactured by Philco Ford. It used a 32  bit  word
  321.           and  the only language available was an assembler. I learned
  322.           a lot from that experience but didn't  do  much  more  until
  323.           about  3  years  ago  when I developed a large program using
  324.           Dbase III Plus. 
  325.           
  326.  
  327.  
  328.                                       -4-
  329.  
  330.  
  331.      CNews (1.12)                  Oct 30,1988                 CNews (1.12)
  332.  
  333.  
  334.           
  335.           DECISIONS...DECISIONS 
  336.           
  337.                I had originally considered using Pascal but heard that 
  338.           it may not be flexible enough for the type of communications 
  339.           programming that I had in mind. So 'C' it was. 
  340.           
  341.                I had been playing around on BBS's for awhile and  just
  342.           happened  to  come  across  the 'C BBS'. It was great timing
  343.           since I was looking for help from whatever sources  I  could
  344.           find.  While  looking  around  the  C BBS file system I came
  345.           across some tutorials and downloaded them (C  Tutor,  etc.).
  346.           They  were  exactly  what  I  was  looking  for, an easy and
  347.           painless way to  learn  C.  I  also  'listened  in'  on  the
  348.           compiler  wars  that  were  going on at the time and decided
  349.           that the best compiler for my application and experience was 
  350.           Turbo C. The  integrated  environment  that  was  touted  by
  351.           Borland  enticed  me  more  than  any  other  feature. I now
  352.           consider that decision to be a very good one as I have  been
  353.           completely  satisfied with it's operation. I'll get into the
  354.           nitty gritty about that later. 
  355.           
  356.           
  357.           PUTTING IT TOGETHER 
  358.           
  359.                So what did I want my program to do? How was I going to 
  360.           lay it out? What toolbox's was I going to use (if any)?  The
  361.           way  I  decided  on  the  look  and feel was to see what was
  362.           currently available in shareware on the BBS as well  as  how
  363.           other  communication programs operated. This way I could see
  364.           if I could handle C without risking too much  money  and  at
  365.           the  same  time  take  some  of  the better ideas from other
  366.           programs. 
  367.           
  368.                After sifting through numerous demo programs, I decided 
  369.           that the Window Boss would be the program I would use as the 
  370.           user  interface  and  LiteComm(tm)  as  the   communications
  371.           toolbox.  Once  again,  for what was available at the time I
  372.           think that these were good decisions. Again, more  on  these
  373.           later. 
  374.           
  375.                The  way I started to build my program was to determine
  376.           how the V.25 bis protocol  in  my  modems  actually  worked,
  377.           since  that  was  the  core  of the program to be built. The
  378.           program  required  downloading  or  uploading  64  bytes  of
  379.           configuration  and  dialing data to and from the modem along
  380.           with the  appropriate  commands.  So  the  program  actually
  381.           developed  from  the inside out. I built the V.25 bis engine
  382.           to communicate with the modem first,  testing  each  command
  383.           along  the  way.  Then  I  built the shell around the engine
  384.           which contained the user interface window program. Of course 
  385.           as with any program, problems existed and persisted. 
  386.           
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.                                       -5-
  395.  
  396.  
  397.      CNews (1.12)                  Oct 30,1988                 CNews (1.12)
  398.  
  399.  
  400.           PROBLEMS AND HEADACHES 
  401.           
  402.           
  403.           Problem number 1. What model to  use?  Small  seemed  to  be
  404.           appropriate  as  I  didn't feel (and didn't know any better)
  405.           that the program would be overly large. Also it  would  take
  406.           up less disk space. 
  407.           
  408.           Problem number 2. I needed a line editor for entering either 
  409.           text  information  or  numbers.  The  editor  needed  to  be
  410.           flexible enough to include a user defined data feature since 
  411.           the configuration data consists of 1's and 0's only. I found 
  412.           a  public  domain  editor   that   someone   had   developed
  413.           specifically   for   the  Window  Boss,  but  was  not  well
  414.           structured and was kind of long. It also had some bugs in it 
  415.           as well as some features that I had to fix and add along the 
  416.           way. It was useful for a while. 
  417.           
  418.                The biggest problem that I ran into while building  the
  419.           program  was  what  features  was  I  going to put into this
  420.           thing? Unfortunately I didn't have  a  really  well  defined
  421.           plan  prior  to  starting  and  it definitely hurt me as the
  422.           program developed. I guess that the real reason for this  is
  423.           that  I  didn't  know  what could be done within my level of
  424.           experience as well as with the utilities that I was using. 
  425.           
  426.                So not only were the specifications changing along  the
  427.           way, but as I learned more and more I kept adding and adding 
  428.           and  making the program more 'perfect'. Kind of like a catch
  429.           22. You don't know what you can do until you do it, and then 
  430.           when you do it you find out that you can do more, so you  do
  431.           more and learn more, and do more... 
  432.           
  433.                Well,  I  finally  called  some  of the other marketing
  434.           people in my company and asked them what would be sufficient 
  435.           for a first release. It sure was  a  relief  when  I  got  a
  436.           specific stopping point from those people! 
  437.           
  438.           
  439.           CONTINUING ON 
  440.           
  441.                Of course as I added features to the program the effect 
  442.           on  functions  that  were  already  built  without  the  new
  443.           features in mind was a real pain and very time consuming. In 
  444.           some cases I had to completely rebuild or kludge  the  older
  445.           function.  This  certainly  says  something for developing a
  446.           master plan prior to starting a major task as this. 
  447.           
  448.                Some things I didn't learn until most  of  the  program
  449.           was  completed,  such  as  function prototyping. None of the
  450.           material that  I  had  read  said  anything  about  function
  451.           prototyping. The first place that I saw it was in one of the 
  452.           toolbox's that I was using. It still isn't in the program. 
  453.           
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.                                       -6-
  461.  
  462.  
  463.      CNews (1.12)                  Oct 30,1988                 CNews (1.12)
  464.  
  465.  
  466.           SOME MORE HASSLES 
  467.           
  468.                Well  soon enough the source program became very large.
  469.           It consisted of 5 separate files totaling about 100K! That's 
  470.           a lot of stuff! I had to pare it down somewhat in order  for
  471.           it to be more manageable. The executable was hovering around 
  472.           60K.  Well, there were a few changes that could be done that
  473.           would downsize the source and allow me to eliminate 2 files. 
  474.           The changes were to upgrade the toolbox's and the compiler. 
  475.           
  476.                I started out using Turbo C 1.0, Window Boss, Litecomm, 
  477.           a shareware graphics package (HSA) and the  separate  public
  478.           domain  line editor. It was time to upgrade since TC now had
  479.           1.5  and  Window  Boss  and  Litecomm  both  had   upgrades.
  480.           Actually, the upgrades didn't happen all at once but for the 
  481.           sake  of  a  shortened story we'll say that it happened that
  482.           way. The upgrade to Litecomm happened  first.  This  upgrade
  483.           was  not going to save me anything in size, but it fixed two
  484.           problem that needed fixing. The upgrade to the  Window  Boss
  485.           was  next.  It  allowed  me  to  eliminate the separate line
  486.           editor since the new version of the Boss  included  one.  It
  487.           also  fixed some annoying problems when exiting the program.
  488.           The last upgrade was to TC 1.5. This version allowed  me  to
  489.           eliminate  the  shareware  graphics package since TC 1.5 has
  490.           graphics functions. So I went from 5 files  down  to  three.
  491.           Much more manageable. 
  492.           
  493.                Of  course,  throughout the writing of the program were
  494.           the all night debugging sessions, calls to people on  the  C
  495.           BBS,  calls  to  the C BBS sysop (Barry Lynch) at all hours,
  496.           calls to Phil and Ralph of the Window Boss and Litecomm  and
  497.           of  course those sleepless nights tossing and turning due to
  498.           a bug that I could of  sworn  was  a  easy  fix.  It  was  a
  499.           challenge to say the least. 
  500.           
  501.           
  502.           HOW DO I KNOW WHEN IT'S TIME TO CHANGE MEMORY MODELS? 
  503.           
  504.                Well,  after the last upgrade the worst (well maybe not
  505.           THE worst, but pretty much a royal pain)  finally  happened.
  506.           "Too  much  global  data defined" said the compiler as I was
  507.           recompiling. It was time to change  memory  models.  Not  so
  508.           easy.  What  was  interesting  about having to change memory
  509.           models was that a number  of  weeks  prior  to  this  latest
  510.           disaster  I had posted a message on the C BBS asking "how do
  511.           I know when it's time to change models?." What I got  was  a
  512.           lot  of  stuff  that  was over my head, although I certainly
  513.           want to thank all those that tried to  educate  me  and  who
  514.           took  the  time  to  answer.  It  actually  had those people
  515.           thinking out there! It had them thinking so much  that  Bill
  516.           Mayne  recently wrote a superb article for the C BBS on that
  517.           exact topic! The only problem was that nobody had the answer 
  518.           that I was looking for. How was I supposed to know  when  my
  519.           data  or code got too big? How was I supposed to measure it?
  520.           I got my answer when the compile crashed. 
  521.           
  522.  
  523.  
  524.  
  525.  
  526.                                       -7-
  527.  
  528.  
  529.      CNews (1.12)                  Oct 30,1988                 CNews (1.12)
  530.  
  531.  
  532.                What did I  need  to  get  this  thing  cooking  again?
  533.           Obviously  I needed to determine what model to upgrade to. I
  534.           received suggestions from the people on the C BBS to  go  to
  535.           Compact  or Medium. Unfortunately they also crashed with the
  536.           same error (not the people, the compiler).  So  to  Large  I
  537.           went. 
  538.           
  539.                That  was fun (sarcastically speaking). No problem with
  540.           TC 1.5 but I had made some changes in the  source  code  and
  541.           header  files  for  Litecomm as well as the Window Boss. The
  542.           Litecomm change wasn't too difficult  but  the  Window  Boss
  543.           cost  me money! It seems that the Large model isn't included
  544.           but can be compiled with  batch  files  that  are  included.
  545.           Unfortunately  there is also assembler code that needs to be
  546.           assembled and linked. Did I have  an  assembler?  Of  course
  547.           not. What did I have to do? Go out and buy one. Ping...$100. 
  548.           So much for inexpensive shareware. 
  549.           
  550.                I  finally  got  everything  compiled and linked. Guess
  551.           what? Just try to guess the new size of the .EXE  file.  The
  552.           one  that  was  last compiled using the Small model was just
  553.           over 71k. How about 161K! Yeech! Oh well. That's life. 
  554.           
  555.                Since I had been writing the program for about 6 months 
  556.           (on and off) I learned a few things about C, and so was able 
  557.           to squeeze it down to the slim 160k that it is today in it's 
  558.           Beta test form. 
  559.           
  560.           
  561.           TOOLBOX'S 
  562.           
  563.                Now some words about the toolbox's  that  I  used,  The
  564.           Window Boss from Star Guidance Consulting, Inc. and LiteComm 
  565.           from Information Technology, Ltd. 
  566.           
  567.           WINDOW BOSS 
  568.           
  569.                First  of  all  I  purchased  the source code from both
  570.           companies. In the warranty for the Window Boss it said  that
  571.           there  would  be  free  upgrades  for one year. Well, when I
  572.           needed my upgrade, the upgrade was not free. The answer Phil 
  573.           gave was that it was  a  major  change,  not  just  a  minor
  574.           upgrade.  "OK.  I'll  buy it, but I'm not happy about it." I
  575.           had no choice since I needed the software and I had about  6
  576.           months  of  my life already invested! I must say in fairness
  577.           that it really was a major change and made my life a  little
  578.           easier. 
  579.           
  580.                I  had  the  opportunity  to  speak to Phil a number of
  581.           times and was pleased in the most part for the service  that
  582.           he  provided.  The  only  complaints  are  in regards to the
  583.           upgrade policy and having to purchase an assembler to get my 
  584.           Large model. Phil was rarely immediately  available  when  I
  585.           called  and  the  person  answering the phone was unfamiliar
  586.           with the software, but Phil always returned my calls  within
  587.           a reasonable period of time. 
  588.           
  589.           
  590.  
  591.  
  592.                                       -8-
  593.  
  594.  
  595.      CNews (1.12)                  Oct 30,1988                 CNews (1.12)
  596.  
  597.  
  598.           LITECOMM 
  599.           
  600.                I  have  no  complaints  about  the service provided by
  601.           Ralph from LiteComm. One annoying factor though is  that  he
  602.           keeps  his telephone answering machine on all of the time. I
  603.           had the opportunity to call Ralph about 6 times  or  so  and
  604.           not  once did he answer the phone himself, BUT my calls were
  605.           always  returned  quickly.  Ralph  answered   my   questions
  606.           professionally and was very pleasant and helpful. 
  607.           
  608.           
  609.           WHAT ABOUT THE NEXT TIME? 
  610.           
  611.                Would  I use these toolbox's again for my next program?
  612.           Now that I know more about the C world I would probably look 
  613.           around some more before making that decision  but,  I  would
  614.           use  these  programs  and  my  experiences as a baseline for
  615.           chasing down other newer toolbox's  or  reviewing  the  same
  616.           ones again along with any new updates. 
  617.           
  618.                Would I continue to use shareware or would I like to go 
  619.           to  a commercial package? Since I have had a good experience
  620.           with the packages I chose, I would definitely  look  at  the
  621.           shareware packages first. I like the idea of seeing what I'm 
  622.           getting  into  and  trying  it  out  before I buy. I've been
  623.           looking in the recent programmers magazines and  would  love
  624.           to  try  some  of  the  software, but at the prices that are
  625.           being charged and no "try before you buy" policy,  it  makes
  626.           it awfully difficult to purchase one of those packages. 
  627.           
  628.                So  what's  next? I recently got my hands on a new data
  629.           compression  engine  and  am  considering  building  a  file
  630.           compression  program  around it. Yes, I know. I'll make sure
  631.           that I don't use the term ARC anywhere near the program. 
  632.           
  633.           
  634.           Turbo C is a trademark of Borland International.
  635.           Litecomm is a trademark    of Information Technology, Ltd.
  636.           Other trademarks mentioned are the properties of their
  637.           respective companies. 
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.                                       -9-
  659.  
  660.  
  661.      CNews (1.12)                  Oct 30,1988                 CNews (1.12)
  662.  
  663.  
  664.           Public Domain/Shareware Software Review: 
  665.           Program:  CXL - C Programmer's Extended Library
  666.           Purpose:  CXL provides a complete set of windowing and data entry
  667.           routines for the following compilers: Microsoft, TurboC,
  668.           Datalight, and Zortech C++.
  669.           NOTE: The C BBS has not received any compensation for this 
  670.           review. Opinions expressed are those of the author only. 
  671.           
  672.           EDITOR: I had the opportunity to chat on-line with Mike 
  673.           Smedley - creator of the CXL Library - the other day here at 
  674.           the C BBS. What follows is a "C News Interview of sorts", a 
  675.           first if you will for C News. After Mike's comments, a 
  676.           review of the basic features of CXL will be presented. 
  677.           
  678.           BARRY: Mike, when did you start on CXL, and why? 
  679.           
  680.           MIKE: I originally started work on CXL in July 1987. It 
  681.           started out as a collection of several of my favorite 
  682.           functions (both C and assembly). I had just purchased Turbo 
  683.           C 1.0 and started using it for development along with MASM. 
  684.           What I liked about Turbo C was its pseudo-register variables 
  685.           and inline assembly allowing me low-level access to the 
  686.           system. As I was developing my personal applications, if I 
  687.           made a function that could be re-used, I added it to my 
  688.           library. 
  689.           
  690.           
  691.           BARRY: After you created the first CXL if you will, did you 
  692.           have plans to create a complete library? 
  693.           
  694.           MIKE: I eventually started trying to think up functions that 
  695.           I could add to my library. I looked over a few Shareware C 
  696.           function libraries and decided to add pop-up windows to my 
  697.           library. I now had a library complete with simple windowing 
  698.           functions, string functions, equipment detection functions, 
  699.           and a few other miscellaneous functions. I decided to 
  700.           release a Shareware version locally in November 1987 just to 
  701.           see how it would do. 
  702.           
  703.           
  704.           BARRY: After releasing CXL as shareware in Nov 87, what was 
  705.           the initial response? 
  706.           
  707.           MIKE: I eventually realized that to make the product more 
  708.           usable for others, I would have to be able to supply 
  709.           libraries for memory models other than small. Considering 
  710.           the amount of assembly language I was using, this was no 
  711.           small task. With help from the macros from the MIXED.INC 
  712.           file included in MASM 5.0, I was able to provide the 
  713.           additional memory models. 
  714.           
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.                                       -10-
  725.  
  726.  
  727.      CNews (1.12)                  Oct 30,1988                 CNews (1.12)
  728.  
  729.  
  730.           BARRY: At this point you have support for different memory 
  731.           models, what about other compilers: like Microsoft, and 
  732.           Zortech? 
  733.           
  734.           MIKE: Well, I decided that I needed to support compilers 
  735.           other than Turbo C. Using assembly language, this requires a 
  736.           complex system of macros to provide compatiblity. So, I 
  737.           decided that I should rewrite all of the assembly language 
  738.           functions in C. Upon completion of this, porting CXL to 
  739.           other compilers proved quite simple. 
  740.           
  741.           
  742.           BARRY: To sum up, what do you think of CXL? 
  743.           
  744.           MIKE: CXL has come a long way since its conception. Although 
  745.           CXL competes with many commercial packages costing hundreds 
  746.           of dollars, its registration fee remains low to provide 
  747.           users with quality software and support at low prices. 
  748.           
  749.           
  750.           REVIEW: 
  751.           
  752.                CXL stands for "C Programmer's Extended Library", and 
  753.           currently supports various C compilers for the IBM PC and 
  754.           compatibles. Compilers supported include: Microsoft, 
  755.           Borland, Zortech and Datalight. 
  756.           
  757.                It contains 170 functions that encompass a windowing 
  758.           system, Lotus Style and Pop-Up/Pull Down Menus, Multi-Field 
  759.           keyboard data entry, EGA 43 and VGA 50 line modes supported, 
  760.           DESQview compatibilty, Microsoft Mouse compatiable 
  761.           functions, equipment detection, printing support and more. 
  762.           The shareware version that is available, only supports the 
  763.           SMALL memory model. Other memory models are available after 
  764.           registering for $25, and the source code is provided. Free 
  765.           updates are available for new versions that are released to 
  766.           registered users. 
  767.           
  768.                I have tried Mike's package rather extensively. It 
  769.           should be noted that I downloaded CXL from Compuserve, 
  770.           several weeks before Mike logged onto my BBS. It was my idea 
  771.           to have a Question and Answer article for C News. I like the 
  772.           entire CXL package. The documentation is EXCELLENT, and 
  773.           complete. This is key point if you are new to C programming. 
  774.           The routines worked as advertised and I am currently using 
  775.           CXL in one of my applications. I like CXL enough, to have 
  776.           sent in my registration fee for the complete package. The 
  777.           registration fee is very reasonable for what you get. And i 
  778.           believe it is very competitive with commercial packages that 
  779.           are available, and some of the more popular shareware 
  780.           packages like: WindowBoss. 
  781.           
  782.                CXL is worth a look, the Small memory model will 
  783.                suffice for a good number of applications. Give CXL a 
  784.                look. 
  785.                
  786.  
  787.  
  788.  
  789.  
  790.                                       -11-
  791.  
  792.  
  793.      CNews (1.12)                  Oct 30,1988                 CNews (1.12)
  794.  
  795.  
  796.                
  797.                ARTICLE SUBMISSION STANDARDS AND ADDRESSES 
  798.                
  799.                As I have repeatedly stated in this newsletter and 
  800.                previous issues, I would like to see user-submitted 
  801.                articles, reviews or questions. Listed below are the 
  802.                standards that should be followed to make my job easier 
  803.                as an editor. 
  804.                
  805.                
  806.              - Articles should be submitted in a ASCII non-formatted
  807.                file.  (Margins 0-65 PLEASE)
  808.                
  809.              - If the article include code fragments as examples. Then
  810.                you can include the entire source file if you like for
  811.                inclusion with the newsletter.
  812.                
  813.              - Book or magazine reviews should follow the same format,
  814.                that is outlined in this issue.  The publisher, author,
  815.                title, and ISBN number are a must.
  816.                
  817.              - Compiler/and or product reviews, should include the
  818.                version number and manufacture.  If possible, reviews
  819.                should include a sample program with benchmarks.
  820.                
  821.                     If you have any questions you can contact me at 
  822.                the address's included on the next page. 
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.                                       -12-
  857.  
  858.  
  859.      CNews (1.12)                  Oct 30,1988                 CNews (1.12)
  860.  
  861.  
  862.                
  863.                     ADDRESSES
  864.                
  865.                     The C BBS is located at:
  866.                
  867.                       C BBS
  868.                       % BCL Limited
  869.                       P.O. Box 9162
  870.                       McLean VA, 22102
  871.                
  872.                
  873.                     or you can send netmail to:
  874.                
  875.                
  876.                     1:109/713
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.                                       -13-
  923.  
  924.  
  925.      CNews (1.12)                  Oct 30,1988                 CNews (1.12)
  926.  
  927.  
  928.                
  929.                             DISTRIBUTION POINTS   
  930.                
  931.                
  932.       Board Name               Number         Net/Node       Sysop   
  933.                
  934.       United States   
  935.                
  936.       C BBS               (703) 644-6478      1:109/713      Barry Lynch   
  937.       Burke, VA   
  938.                
  939.       Jaz C-Scape         (904) 724-1377      1:112/1027     Tom Evans   
  940.       Jacksonville, FL   
  941.                
  942.       Eastern C Board     (201) 247-6748      1:107/335      Todd Lehr   
  943.                
  944.       Exec-PC             (414) 964-5160        ..           Bob Mahoney
  945.       Milwaukee, WI
  946.                
  947.       TAMIAMI             (813) 793-2392                     Gerhard Barth
  948.       Naples, FL
  949.                
  950.       Sound of Music      (516) 536-8723(2400)               Paul Waldinger
  951.                           (516) 536-6819(9600 Hayes V)   
  952.                
  953.       CANADA   
  954.                
  955.       Another BBS System  (416) 465-7752      1:148/208      Mark Bowman   
  956.       Toronto, Canada   
  957.                
  958.       EUROPE   
  959.                
  960.       Fido_N1_1               31-8350-37156     2:500/1        Henk Wevers 
  961.                
  962.       The Netherlands   
  963.                
  964.       AUSTRALIA   
  965.                
  966.       Sentry BBS              02-428-4687       ...            Trev Roydhouse
  967.             (300-2400) Non-Mail Times
  968.             (300-19,200) Mail Hour (Trailblazer) 
  969.                
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.                                       -14-
  989.  
  990.  
  991.      CNews (1.12)                  Oct 30,1988                 CNews (1.12)
  992.  
  993.  
  994.         USER RESPONSE FORM 
  995.                
  996.             This form will be included as a regular feature in all future   
  997.         issues of C NEWS.   
  998.                
  999.                
  1000.                
  1001.         What did you think of the content of this Issue?  _____________   
  1002.                
  1003.         _______________________________________________________________   
  1004.                
  1005.         What improvements can you think of that would make C News a   
  1006.         better tool for the C Community?   
  1007.                
  1008.         _______________________________________________________________   
  1009.                
  1010.         _______________________________________________________________   
  1011.                
  1012.                
  1013.         What is your favorite section or sections?  ___________________   
  1014.                
  1015.         _______________________________________________________________   
  1016.                
  1017.                
  1018.         What don't you like about C News?  ____________________________   
  1019.                
  1020.         _______________________________________________________________   
  1021.                
  1022.                
  1023.         Additional Comments:  _________________________________________   
  1024.                
  1025.         _______________________________________________________________   
  1026.                
  1027.         _______________________________________________________________   
  1028.                
  1029.         _______________________________________________________________   
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.                                       -15-
  1055.  
  1056.  
  1057.      CNews (1.12)                  Oct 30,1988                 CNews (1.12)
  1058.  
  1059.  
  1060.                
  1061.                
  1062.                
  1063.                
  1064.                
  1065.                
  1066.                
  1067.                
  1068.                
  1069.                
  1070.                
  1071.                
  1072.                
  1073.                
  1074.                
  1075.                
  1076.                
  1077.                
  1078.                
  1079.                
  1080.                
  1081.                
  1082.                
  1083.                
  1084.                
  1085.                
  1086.                
  1087.                
  1088.                
  1089.                
  1090.                
  1091.                
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.                                       -16-
  1121.  
  1122.